package com.weixin.model;

import com.frame.ar.model.JFinalModel;
import com.jfinal.kit.StrKit;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Record;

/**
 * 作用描述：微信绑定的各系统用户信息
 * @author LRC
 * @createDate 2015年9月28日
 * @version v1.0 
 * @updateRecord 格式：时间，作者，修改说明
 **
 * 
 */
public class AppUser extends JFinalModel<AppUser>{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	public static AppUser dao = new AppUser();

	/**
	 * 线程绑定用户，操作共享，在请求到达时设置，整个操作过程共享
	 */
	private static ThreadLocal<AppUser> us = new ThreadLocal<AppUser>();
	
	
	
	/**
	 * @updateTeim 2015年5月22日下午11:38:19
	 * @description 获取当前登录用户
	 * @return
	 */
	public static AppUser getCurrentUser() {
		return us.get();
	}
	
	/**
	 * @updateTeim 2015年5月25日上午12:53:16
	 * @description 为当前线程绑定用户
	 * @param user
	 */
	public static void setCurrentUser(Object user){
		if(user!=null && user instanceof AppUser){
			us.set((AppUser)user);
		}else{
			us.set(null);
		}
	}
	/**
	 * 功能描述：通过用户的openId获取用户信息
	 * @createDate 2015年9月28日 by LRC
	 * @param openId
	 * @return 
	 * @updateRecord 格式：时间，作者，修改说明
	 **
	 * 
	 */
	public AppUser getBindUserByOpenId(String openId){
		if(StrKit.isBlank(openId))return null;
		
		String sql = "select * from "+ this.getTableName()+" where openId=? ";
		
		return dao.findFirst(sql,openId);
	}
	
	/**
	 * 功能描述：通过登录token获取对应的微信用户
	 * @createDate 2015年10月17日 by LRC
	 * @param openId
	 * @param loginToken
	 * @return 
	 * @updateRecord 格式：时间，作者，修改说明
	 **
	 * 
	 */
	public AppUser getUserByToken(String openId,String loginToken){
		if(StrKit.isBlank(openId))return null;
		
		String sql = "select * from "+ this.getTableName()+" where openId=? and loginToken=?";
		
		return dao.findFirst(sql,openId,loginToken);
	}
	
	
	/**
	 * 功能描述：获取PMS中个人信息
	 * @createDate 2015年10月18日 by LRC
	 * @param personId
	 * @return 
	 * @updateRecord 格式：时间，作者，修改说明
	 **
	 * 
	 */
	public Record getPMSPersonInfo(Object personId){
		String sql = "select * from pms_bi_person where id=? ";
		Record person = Db.use("PMS2_PMS").findFirst(sql, personId);
		return person;
	}
	
}
